<?php

namespace YouBaoLian\Application\Info;

class CarInfo extends Info
{
    /**
     * 车牌号
     * @var string $licenseNo
     */
    private $licenseNo = '';

    /**
     * 车架号
     * @var string $frameNo
     */
    private $frameNo = '';

    /**
     * 发动机号
     * @var string $engineNo
     */
    private $engineNo = '';

    /**
     * 品牌名称
     * @var string $autoModelName
     */
    private $autoModelName = '';

    /**
     * 所属性质
     * @var int $ownershipAttribute
     */
    private $ownershipAttribute = 0;

    /**
     * 默认车型Code
     * @var string $defaultModelCode
     */
    private $defaultModelCode = '';

    /**
     * 默认车型名称
     * @var string $defaultModelName
     */
    private $defaultModelName = '';

    /**
     * 能源种类
     * @var string $energyType
     */
    private $energyType = '';

    /**
     * 排量
     * @var string $exhaustCapability
     */
    private $exhaustCapability = '';

    /**
     * 初登日期
     * @var string $firstRegisterDate
     */
    private $firstRegisterDate = '';

    /**
     * 核载质量
     * @var string $vehicleTonnages
     */
    private $vehicleTonnages = '';

    /**
     * 整备质量
     * @var string $wholeWeight
     */
    private $wholeWeight = '';

    /**
     * 车辆购置价（含税）
     * @var float $carPrice
     */
    private $carPrice = 0.00;

    /**
     * 车辆购置价（不含税）
     * @var float $carPriceWithOutTax
     */
    private $carPriceWithOutTax = 0.00;

    /**
     * 是否过户
     * @var int $isTrans
     */
    private $isTrans = 1;

    /**
     * 过户日期 当年过户车必填
     * @var string $transDate
     */
    private $transDate = null;

    /**
     * 发证日期
     * @var string $issueDate
     */
    private $issueDate = '';

    /**
     * 号牌颜色代码
     * @var string $licenseColorCode
     */
    private $licenseColorCode = '';

    /**
     * 号牌种类代码
     * @var string $plateTypeCode
     */
    private $plateTypeCode = '';

    /**
     * 交管车辆类型代码
     * @var string $vehicleStyleCode
     */
    private $vehicleStyleCode = '';

    /**
     * 功率
     * @var string $power
     */
    private $power = '';

    /**
     * 座位数
     * @var int $seats
     */
    private $seats = '';

    /**
     * 使用性质
     * @var int $usageAttribute
     */
    private $usageAttribute = '';

    /**
     * 车辆种类
     * @var string $vehicleClassCode
     */
    private $vehicleClassCode = '';

    /**
     * 交强厂牌型号
     * @var string $drivingLicenseModel
     */
    private $drivingLicenseModel = '';

    /**
     * 车辆来历凭证编号
     * @var string $carCertificateNo
     */
    private $carCertificateNo = '';

    /**
     * 开具车辆来历凭证所载日期
     * @var string $vehicleSrcCertiDate
     */
    private $vehicleSrcCertiDate = '';

    /**
     * 车辆来历凭证种类
     * @var string $vehicleSrcCertiType
     */
    private $vehicleSrcCertiType = '';

    public function getInfo(): array
    {
        $carInfo = [
            'licenseNo'=>$this->licenseNo,
            'frameNo'=>$this->frameNo,
            'engineNo'=>$this->engineNo,
            'autoModelName'=>$this->autoModelName,
            'ownershipAttribute'=>$this->ownershipAttribute,
            'defaultModelCode'=>$this->defaultModelCode,
            'defaultModelName'=>$this->defaultModelName,
            'energyType'=>$this->energyType,
            'exhaustCapability'=>$this->exhaustCapability,
            'firstRegisterDate'=>$this->firstRegisterDate,
            'carPrice' =>$this->carPrice,
            'carPriceWithOutTax'=>$this->carPriceWithOutTax,
            'isTrans'=>$this->isTrans,
            'transDate'=>$this->transDate,
            'issueDate'=>$this->issueDate,
            'licenseColorCode'=>$this->licenseColorCode,
            'plateTypeCode'=>$this->plateTypeCode,
            'vehicleStyleCode'=>$this->vehicleStyleCode,
            'seats'=>$this->seats,
            'usageAttribute'=>$this->usageAttribute,
            'vehicleClassCode'=>$this->vehicleClassCode,
        ];
        if ($this->vehicleTonnages) {
            $carInfo['vehicleTonnages'] = $this->vehicleTonnages;
        }
        if ($this->wholeWeight) {
            $carInfo['wholeWeight'] = $this->wholeWeight;
        }
        if ($this->power) {
            $carInfo['power'] = $this->power;
        }
        if ($this->drivingLicenseModel) {
            $carInfo['drivingLicenseModel'] = $this->drivingLicenseModel;
        }
        if ($this->carCertificateNo) {
            $carInfo['carCertificateNo'] = $this->carCertificateNo;
        }
        if ($this->vehicleSrcCertiDate) {
            $carInfo['vehicleSrcCertiDate'] = $this->vehicleSrcCertiDate;
        }
        if ($this->vehicleSrcCertiType) {
            $carInfo['vehicleSrcCertiType'] = $this->vehicleSrcCertiType;
        }

        return $carInfo;
    }

    /**
     * @param string $licenseNo
     */
    public function setLicenseNo(string $licenseNo): void
    {
        $this->licenseNo = $licenseNo;
    }

    /**
     * @param string $frameNo
     */
    public function setFrameNo(string $frameNo): void
    {
        $this->frameNo = $frameNo;
    }

    /**
     * @param string $engineNo
     */
    public function setEngineNo(string $engineNo): void
    {
        $this->engineNo = $engineNo;
    }

    /**
     * @param string $autoModelName
     */
    public function setAutoModelName(string $autoModelName): void
    {
        $this->autoModelName = $autoModelName;
    }

    /**
     * @param int $ownershipAttribute
     */
    public function setOwnershipAttribute(int $ownershipAttribute): void
    {
        $this->ownershipAttribute = $ownershipAttribute;
    }

    /**
     * @param string $defaultModelCode
     */
    public function setDefaultModelCode(string $defaultModelCode): void
    {
        $this->defaultModelCode = $defaultModelCode;
    }

    /**
     * @param string $defaultModelName
     */
    public function setDefaultModelName(string $defaultModelName): void
    {
        $this->defaultModelName = $defaultModelName;
    }

    /**
     * @param string $energyType
     */
    public function setEnergyType(string $energyType): void
    {
        $this->energyType = $energyType;
    }

    /**
     * @param string $exhaustCapability
     */
    public function setExhaustCapability(string $exhaustCapability): void
    {
        $this->exhaustCapability = $exhaustCapability;
    }

    /**
     * @param string $firstRegisterDate
     */
    public function setFirstRegisterDate(string $firstRegisterDate): void
    {
        $this->firstRegisterDate = $firstRegisterDate;
    }

    /**
     * @param float $vehicleTonnages
     */
    public function setVehicleTonnages(float $vehicleTonnages): void
    {
        $this->vehicleTonnages = $vehicleTonnages;
    }

    /**
     * @param float $wholeWeight
     */
    public function setWholeWeight(float $wholeWeight): void
    {
        $this->wholeWeight = $wholeWeight;
    }

    /**
     * @param float $carPrice
     */
    public function setCarPrice(float $carPrice): void
    {
        $this->carPrice = $carPrice;
    }

    /**
     * @param float $carPriceWithOutTax
     */
    public function setCarPriceWithOutTax(float $carPriceWithOutTax): void
    {
        $this->carPriceWithOutTax = $carPriceWithOutTax;
    }

    /**
     * @param int $isTrans
     */
    public function setIsTrans(int $isTrans): void
    {
        $this->isTrans = $isTrans;
    }

    /**
     * @param string $transDate
     */
    public function setTransDate(string $transDate): void
    {
        $this->transDate = $transDate;
    }

    /**
     * @param string $issueDate
     */
    public function setIssueDate(string $issueDate): void
    {
        $this->issueDate = $issueDate;
    }

    /**
     * @param string $licenseColorCode
     */
    public function setLicenseColorCode(string $licenseColorCode): void
    {
        $this->licenseColorCode = $licenseColorCode;
    }

    /**
     * @param string $plateTypeCode
     */
    public function setPlateTypeCode(string $plateTypeCode): void
    {
        $this->plateTypeCode = $plateTypeCode;
    }

    /**
     * @param string $vehicleStyleCode
     */
    public function setVehicleStyleCode(string $vehicleStyleCode): void
    {
        $this->vehicleStyleCode = $vehicleStyleCode;
    }

    /**
     * @param float $power
     */
    public function setPower(float $power): void
    {
        $this->power = $power;
    }

    /**
     * @param int $seats
     */
    public function setSeats(int $seats): void
    {
        $this->seats = $seats;
    }

    /**
     * @param int $usageAttribute
     */
    public function setUsageAttribute(int $usageAttribute): void
    {
        $this->usageAttribute = $usageAttribute;
    }

    /**
     * @param string $vehicleClassCode
     */
    public function setVehicleClassCode(string $vehicleClassCode): void
    {
        $this->vehicleClassCode = $vehicleClassCode;
    }

    /**
     * @param string $drivingLicenseModel
     */
    public function setDrivingLicenseModel(string $drivingLicenseModel): void
    {
        $this->drivingLicenseModel = $drivingLicenseModel;
    }

    /**
     * @param string $carCertificateNo
     */
    public function setCarCertificateNo(string $carCertificateNo): void
    {
        $this->carCertificateNo = $carCertificateNo;
    }

    /**
     * @param string $vehicleSrcCertiDate
     */
    public function setVehicleSrcCertiDate(string $vehicleSrcCertiDate): void
    {
        $this->vehicleSrcCertiDate = $vehicleSrcCertiDate;
    }

    /**
     * @param string $vehicleSrcCertiType
     */
    public function setVehicleSrcCertiType(string $vehicleSrcCertiType): void
    {
        $this->vehicleSrcCertiType = $vehicleSrcCertiType;
    }


}
